package com.anivia.system.auth.service;

import cn.hutool.core.lang.tree.Tree;
import com.anivia.common.core.enums.PlatformTypeEnum;
import com.anivia.system.auth.model.entity.RoleResourceInfoDO;
import com.anivia.system.auth.model.vo.ResourceInfoVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 资源 服务类
 * </p>
 *
 * @author wangj
 */
public interface IRoleResourceInfoService extends IService<RoleResourceInfoDO> {

    /**
     * 查询对应平台的所有资源
     *
     * @param loginType 平台类型
     * @return 资源集合
     */
    List<Tree<Integer>> baseTree(PlatformTypeEnum loginType);

    /**
     * 查询当前用户有权限的资源
     *
     * @return 资源集合
     */
    List<ResourceInfoVO> resources();

    /**
     * 查询指定角色有权限的资源
     *
     * @return 资源集合
     */
    List<ResourceInfoVO> resources(Integer roleId);
}
